<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__crypto__lld__symmetric__functions.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Functions<div class="ingroups"><a class="el" href="group__group__crypto.html">Crypto       (Cryptography)</a> &raquo; <a class="el" href="group__group__crypto__lld__api.html">Direct Crypto Core Access</a> &raquo; <a class="el" href="group__group__crypto__lld__symmetric.html">Symmetric Key Algorithms (AES, GCM, DES, TDES)</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaea56d7bae9d75b93886094f248e26006"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaea56d7bae9d75b93886094f248e26006">Cy_Crypto_Core_Aes_Init</a> (CRYPTO_Type *base, uint8_t const *key, <a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a> keyLength, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gaea56d7bae9d75b93886094f248e26006"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes AES mode of operation and prepares an inverse key.  <a href="#gaea56d7bae9d75b93886094f248e26006">More...</a><br /></td></tr>
<tr class="separator:gaea56d7bae9d75b93886094f248e26006"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6931a6db295f623788108b994f88cab"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaf6931a6db295f623788108b994f88cab">Cy_Crypto_Core_Aes_InitContext</a> (CRYPTO_Type *base, uint8_t const *key, <a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a> keyLength, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState, <a class="el" href="structcy__stc__crypto__aes__buffers__t.html">cy_stc_crypto_aes_buffers_t</a> *aesBuffers)</td></tr>
<tr class="memdesc:gaf6931a6db295f623788108b994f88cab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes AES mode of operation and prepares an inverse key within a user specified buffer.  <a href="#gaf6931a6db295f623788108b994f88cab">More...</a><br /></td></tr>
<tr class="separator:gaf6931a6db295f623788108b994f88cab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6175ad8a73bb13bb2baea32c5e26239a"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga6175ad8a73bb13bb2baea32c5e26239a">Cy_Crypto_Core_Aes_Free</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga6175ad8a73bb13bb2baea32c5e26239a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears AES operation context.  <a href="#ga6175ad8a73bb13bb2baea32c5e26239a">More...</a><br /></td></tr>
<tr class="separator:ga6175ad8a73bb13bb2baea32c5e26239a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b6e50fe58b6e41aa47b8a588808dc76"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga2b6e50fe58b6e41aa47b8a588808dc76">Cy_Crypto_Core_Aes_Ecb</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga2b6e50fe58b6e41aa47b8a588808dc76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the AES operation on a single block.  <a href="#ga2b6e50fe58b6e41aa47b8a588808dc76">More...</a><br /></td></tr>
<tr class="separator:ga2b6e50fe58b6e41aa47b8a588808dc76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac50cc036fd04cd2dcfbe6a185d89e149"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gac50cc036fd04cd2dcfbe6a185d89e149">Cy_Crypto_Core_Aes_Ecb_Setup</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gac50cc036fd04cd2dcfbe6a185d89e149"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES ECB init operation.  <a href="#gac50cc036fd04cd2dcfbe6a185d89e149">More...</a><br /></td></tr>
<tr class="separator:gac50cc036fd04cd2dcfbe6a185d89e149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga72d645285e442600729f4d47a4d3469e"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga72d645285e442600729f4d47a4d3469e">Cy_Crypto_Core_Aes_Ecb_Update</a> (CRYPTO_Type *base, uint32_t srcSize, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga72d645285e442600729f4d47a4d3469e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES ECB Multistage update operation.  <a href="#ga72d645285e442600729f4d47a4d3469e">More...</a><br /></td></tr>
<tr class="separator:ga72d645285e442600729f4d47a4d3469e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69bcb1415174bc08e94df486c3ddd774"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga69bcb1415174bc08e94df486c3ddd774">Cy_Crypto_Core_Aes_Ecb_Finish</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga69bcb1415174bc08e94df486c3ddd774"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES ECB finish operation.  <a href="#ga69bcb1415174bc08e94df486c3ddd774">More...</a><br /></td></tr>
<tr class="separator:ga69bcb1415174bc08e94df486c3ddd774"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3410c8e8bc02e192a2d9a371a00d2c4a"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga3410c8e8bc02e192a2d9a371a00d2c4a">Cy_Crypto_Core_Aes_Cbc</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, uint32_t srcSize, uint8_t *ivPtr, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga3410c8e8bc02e192a2d9a371a00d2c4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the AES-CBC operation defined in the dirMode parameter on a plain text defined in the src parameter.  <a href="#ga3410c8e8bc02e192a2d9a371a00d2c4a">More...</a><br /></td></tr>
<tr class="separator:ga3410c8e8bc02e192a2d9a371a00d2c4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a8b78ef3db9b502c51437384343c9bb"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga0a8b78ef3db9b502c51437384343c9bb">Cy_Crypto_Core_Aes_Cbc_Setup</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga0a8b78ef3db9b502c51437384343c9bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CBC setup operation.  <a href="#ga0a8b78ef3db9b502c51437384343c9bb">More...</a><br /></td></tr>
<tr class="separator:ga0a8b78ef3db9b502c51437384343c9bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaabc166f616c6885912ff0dbcaa8ca16"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaaabc166f616c6885912ff0dbcaa8ca16">Cy_Crypto_Core_Aes_Cbc_Set_IV</a> (CRYPTO_Type *base, uint8_t const *iv, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gaaabc166f616c6885912ff0dbcaa8ca16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to set AES CBC IV.  <a href="#gaaabc166f616c6885912ff0dbcaa8ca16">More...</a><br /></td></tr>
<tr class="separator:gaaabc166f616c6885912ff0dbcaa8ca16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d520e136268252df2ec00d6756cec51"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga6d520e136268252df2ec00d6756cec51">Cy_Crypto_Core_Aes_Cbc_Update</a> (CRYPTO_Type *base, uint32_t srcSize, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga6d520e136268252df2ec00d6756cec51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CBC Multistage update operation.  <a href="#ga6d520e136268252df2ec00d6756cec51">More...</a><br /></td></tr>
<tr class="separator:ga6d520e136268252df2ec00d6756cec51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba43096fd3fc0d6b401a4fbf81c6ccc4"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaba43096fd3fc0d6b401a4fbf81c6ccc4">Cy_Crypto_Core_Aes_Cbc_Finish</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gaba43096fd3fc0d6b401a4fbf81c6ccc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CBC finish operation.  <a href="#gaba43096fd3fc0d6b401a4fbf81c6ccc4">More...</a><br /></td></tr>
<tr class="separator:gaba43096fd3fc0d6b401a4fbf81c6ccc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9cf667d5368db3c77b2cbaacb4d2b07"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gad9cf667d5368db3c77b2cbaacb4d2b07">Cy_Crypto_Core_Aes_CbcMac_Setup</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gad9cf667d5368db3c77b2cbaacb4d2b07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CBC MAC setup operation.  <a href="#gad9cf667d5368db3c77b2cbaacb4d2b07">More...</a><br /></td></tr>
<tr class="separator:gad9cf667d5368db3c77b2cbaacb4d2b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga042fecb689ca5c6d845a3d43d937d6e6"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga042fecb689ca5c6d845a3d43d937d6e6">Cy_Crypto_Core_Aes_CbcMac_Update</a> (CRYPTO_Type *base, uint32_t srcSize, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga042fecb689ca5c6d845a3d43d937d6e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CBC MAC Multistage update operation.  <a href="#ga042fecb689ca5c6d845a3d43d937d6e6">More...</a><br /></td></tr>
<tr class="separator:ga042fecb689ca5c6d845a3d43d937d6e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3012ea74219b46f00638b2062dea071f"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga3012ea74219b46f00638b2062dea071f">Cy_Crypto_Core_Aes_CbcMac_Finish</a> (CRYPTO_Type *base, uint8_t *mac, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga3012ea74219b46f00638b2062dea071f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CBC finish operation.  <a href="#ga3012ea74219b46f00638b2062dea071f">More...</a><br /></td></tr>
<tr class="separator:ga3012ea74219b46f00638b2062dea071f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga050212232c6625a29c2e91efac199841"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga050212232c6625a29c2e91efac199841">Cy_Crypto_Core_Aes_Cfb</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, uint32_t srcSize, uint8_t *ivPtr, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga050212232c6625a29c2e91efac199841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the AES-CFB operation defined in the dirMode parameter on a plain text defined in the SRC parameter.  <a href="#ga050212232c6625a29c2e91efac199841">More...</a><br /></td></tr>
<tr class="separator:ga050212232c6625a29c2e91efac199841"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ce9a531fdf5bdfbbb2577ea223317b3"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga8ce9a531fdf5bdfbbb2577ea223317b3">Cy_Crypto_Core_Aes_Cfb_Setup</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga8ce9a531fdf5bdfbbb2577ea223317b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CFB setup operation.  <a href="#ga8ce9a531fdf5bdfbbb2577ea223317b3">More...</a><br /></td></tr>
<tr class="separator:ga8ce9a531fdf5bdfbbb2577ea223317b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55cbf36559313816d6aaceb6440ca906"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga55cbf36559313816d6aaceb6440ca906">Cy_Crypto_Core_Aes_Cfb_Set_IV</a> (CRYPTO_Type *base, uint8_t const *iv, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga55cbf36559313816d6aaceb6440ca906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets IV for AES CFB mode.  <a href="#ga55cbf36559313816d6aaceb6440ca906">More...</a><br /></td></tr>
<tr class="separator:ga55cbf36559313816d6aaceb6440ca906"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad3738de4a9dc02b633ee50e4697b821"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaad3738de4a9dc02b633ee50e4697b821">Cy_Crypto_Core_Aes_Cfb_Update</a> (CRYPTO_Type *base, uint32_t srcSize, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gaad3738de4a9dc02b633ee50e4697b821"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CFB Multistage update operation.  <a href="#gaad3738de4a9dc02b633ee50e4697b821">More...</a><br /></td></tr>
<tr class="separator:gaad3738de4a9dc02b633ee50e4697b821"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga521f4e38e7e7077b3e388292ef611072"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga521f4e38e7e7077b3e388292ef611072">Cy_Crypto_Core_Aes_Cfb_Finish</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga521f4e38e7e7077b3e388292ef611072"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CFB finish operation.  <a href="#ga521f4e38e7e7077b3e388292ef611072">More...</a><br /></td></tr>
<tr class="separator:ga521f4e38e7e7077b3e388292ef611072"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac62e5c170a6f7d18d67d2c932449d87f"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gac62e5c170a6f7d18d67d2c932449d87f">Cy_Crypto_Core_Aes_Ctr</a> (CRYPTO_Type *base, uint32_t srcSize, uint32_t *srcOffset, uint8_t *ivPtr, uint8_t *streamBlock, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:gac62e5c170a6f7d18d67d2c932449d87f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the AES-CTR operation on a plain text defined in the src parameter.  <a href="#gac62e5c170a6f7d18d67d2c932449d87f">More...</a><br /></td></tr>
<tr class="separator:gac62e5c170a6f7d18d67d2c932449d87f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23315dc32b20d4ee78b4589e0835f14f"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga23315dc32b20d4ee78b4589e0835f14f">Cy_Crypto_Core_Aes_Ctr_Setup</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga23315dc32b20d4ee78b4589e0835f14f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CTR Multistage update operation.  <a href="#ga23315dc32b20d4ee78b4589e0835f14f">More...</a><br /></td></tr>
<tr class="separator:ga23315dc32b20d4ee78b4589e0835f14f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81ffb369eed08c90f92a75db5114d217"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga81ffb369eed08c90f92a75db5114d217">Cy_Crypto_Core_Aes_Ctr_Set_IV</a> (CRYPTO_Type *base, const uint8_t *iv, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga81ffb369eed08c90f92a75db5114d217"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets IV for the AES CTR operation.  <a href="#ga81ffb369eed08c90f92a75db5114d217">More...</a><br /></td></tr>
<tr class="separator:ga81ffb369eed08c90f92a75db5114d217"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9dfcf96392695a5a643da418f0024654"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga9dfcf96392695a5a643da418f0024654">Cy_Crypto_Core_Aes_Ctr_Update</a> (CRYPTO_Type *base, uint32_t srcSize, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga9dfcf96392695a5a643da418f0024654"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CTR Multistage update operation.  <a href="#ga9dfcf96392695a5a643da418f0024654">More...</a><br /></td></tr>
<tr class="separator:ga9dfcf96392695a5a643da418f0024654"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b579a21afccdd8eff2ac64a87738f2a"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga8b579a21afccdd8eff2ac64a87738f2a">Cy_Crypto_Core_Aes_Ctr_Finish</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *aesState)</td></tr>
<tr class="memdesc:ga8b579a21afccdd8eff2ac64a87738f2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CTR Finish operation.  <a href="#ga8b579a21afccdd8eff2ac64a87738f2a">More...</a><br /></td></tr>
<tr class="separator:ga8b579a21afccdd8eff2ac64a87738f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5397f500cd39371585d13a575388df7b"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga5397f500cd39371585d13a575388df7b">Cy_Crypto_Core_Aes_GCM_Init</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> *aesGCMBuffers, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:ga5397f500cd39371585d13a575388df7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to initialize AES GCM operation.  <a href="#ga5397f500cd39371585d13a575388df7b">More...</a><br /></td></tr>
<tr class="separator:ga5397f500cd39371585d13a575388df7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa9482beb06dd2ff7eca6ab0391fdb50b"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaa9482beb06dd2ff7eca6ab0391fdb50b">Cy_Crypto_Core_Aes_GCM_SetKey</a> (CRYPTO_Type *base, uint8_t const *aesKey, <a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a> keyLength, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:gaa9482beb06dd2ff7eca6ab0391fdb50b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to set AES GCM Key.  <a href="#gaa9482beb06dd2ff7eca6ab0391fdb50b">More...</a><br /></td></tr>
<tr class="separator:gaa9482beb06dd2ff7eca6ab0391fdb50b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f1b8325307421a3afd5883d964668ce"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga9f1b8325307421a3afd5883d964668ce">Cy_Crypto_Core_Aes_GCM_Start</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> <a class="el" href="group__group__ipc__bt__data__structures.html#ga37e90f5e3bd99fac2021fb3a326607d4">mode</a>, uint8_t const *iv, uint32_t ivSize, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:ga9f1b8325307421a3afd5883d964668ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to start AES GCM operation.  <a href="#ga9f1b8325307421a3afd5883d964668ce">More...</a><br /></td></tr>
<tr class="separator:ga9f1b8325307421a3afd5883d964668ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga511634896e2b5134b60352fc4b0bea01"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga511634896e2b5134b60352fc4b0bea01">Cy_Crypto_Core_Aes_GCM_AAD_Update</a> (CRYPTO_Type *base, uint8_t *aad, uint32_t aadSize, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:ga511634896e2b5134b60352fc4b0bea01"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to update the Additional Authentication Data.  <a href="#ga511634896e2b5134b60352fc4b0bea01">More...</a><br /></td></tr>
<tr class="separator:ga511634896e2b5134b60352fc4b0bea01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49798517e7b3eb54cbfa6772fcac6f4d"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga49798517e7b3eb54cbfa6772fcac6f4d">Cy_Crypto_Core_Aes_GCM_Update</a> (CRYPTO_Type *base, const uint8_t *input, uint32_t inputSize, uint8_t *output, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:ga49798517e7b3eb54cbfa6772fcac6f4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to update the data For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters input &amp; output must align and end in 32 byte boundary.  <a href="#ga49798517e7b3eb54cbfa6772fcac6f4d">More...</a><br /></td></tr>
<tr class="separator:ga49798517e7b3eb54cbfa6772fcac6f4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1740199477a8fd8d46c3cc02ce172793"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga1740199477a8fd8d46c3cc02ce172793">Cy_Crypto_Core_Aes_GCM_Finish</a> (CRYPTO_Type *base, uint8_t *p_tag, uint32_t tagSize, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:ga1740199477a8fd8d46c3cc02ce172793"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to finish the AES GCM operation and to calculate the tag.  <a href="#ga1740199477a8fd8d46c3cc02ce172793">More...</a><br /></td></tr>
<tr class="separator:ga1740199477a8fd8d46c3cc02ce172793"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga448121780e7ad4d589ef23989b7843dd"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga448121780e7ad4d589ef23989b7843dd">Cy_Crypto_Core_Aes_GCM_Free</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *aesGCMctx)</td></tr>
<tr class="memdesc:ga448121780e7ad4d589ef23989b7843dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function to finish the encryption process and calculate tag.  <a href="#ga448121780e7ad4d589ef23989b7843dd">More...</a><br /></td></tr>
<tr class="separator:ga448121780e7ad4d589ef23989b7843dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4359679bbb49284433841aa0f9f0f80"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gac4359679bbb49284433841aa0f9f0f80">Cy_Crypto_Core_Aes_GCM_Encrypt_Tag</a> (CRYPTO_Type *base, uint8_t const *aesKey, <a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a> keyLength, uint8_t const *iv, uint32_t ivSize, uint8_t *aad, uint32_t aadSize, const uint8_t *input, uint32_t inputSize, uint8_t *output, uint8_t *tag, uint32_t tagSize)</td></tr>
<tr class="memdesc:gac4359679bbb49284433841aa0f9f0f80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the AES GCM encryption operation on the input data, iv &amp; aad data, generates the encrypted data and TAG.  <a href="#gac4359679bbb49284433841aa0f9f0f80">More...</a><br /></td></tr>
<tr class="separator:gac4359679bbb49284433841aa0f9f0f80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77277c9972f93fc577c6501ce34fb264"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga77277c9972f93fc577c6501ce34fb264">Cy_Crypto_Core_Aes_GCM_Decrypt_Tag</a> (CRYPTO_Type *base, uint8_t const *aesKey, <a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a> keyLength, uint8_t const *iv, uint32_t ivSize, uint8_t *aad, uint32_t aadSize, const uint8_t *input, uint32_t inputSize, uint8_t *tag, uint32_t tagSize, uint8_t *output, cy_en_crypto_aesgcm_tag_verify_result_t *isVerified)</td></tr>
<tr class="memdesc:ga77277c9972f93fc577c6501ce34fb264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the AES GCM decryption operation on the input data and verifies the TAG.  <a href="#ga77277c9972f93fc577c6501ce34fb264">More...</a><br /></td></tr>
<tr class="separator:ga77277c9972f93fc577c6501ce34fb264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf00a0512092af6d1093f3245a5108944"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaf00a0512092af6d1093f3245a5108944">Cy_Crypto_Core_Aes_Ccm_Init</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__ccm__buffers__t.html">cy_stc_crypto_aes_ccm_buffers_t</a> *aesCcmBuffer, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:gaf00a0512092af6d1093f3245a5108944"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CCM Init operation.  <a href="#gaf00a0512092af6d1093f3245a5108944">More...</a><br /></td></tr>
<tr class="separator:gaf00a0512092af6d1093f3245a5108944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62bb8a9f1ae419d32524c5a2cc4ccd5a"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga62bb8a9f1ae419d32524c5a2cc4ccd5a">Cy_Crypto_Core_Aes_Ccm_SetKey</a> (CRYPTO_Type *base, uint8_t const *key, <a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a> keyLength, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:ga62bb8a9f1ae419d32524c5a2cc4ccd5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets AES CCM Key for the operation.  <a href="#ga62bb8a9f1ae419d32524c5a2cc4ccd5a">More...</a><br /></td></tr>
<tr class="separator:ga62bb8a9f1ae419d32524c5a2cc4ccd5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60e1b62cdc62ebf3ba4acf209e923c22"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga60e1b62cdc62ebf3ba4acf209e923c22">Cy_Crypto_Core_Aes_Ccm_Set_Length</a> (CRYPTO_Type *base, uint32_t aadSize, uint32_t textSize, uint32_t tagLength, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:ga60e1b62cdc62ebf3ba4acf209e923c22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the length for Additional authentication data, plain text and Tag for AES CCM operation.  <a href="#ga60e1b62cdc62ebf3ba4acf209e923c22">More...</a><br /></td></tr>
<tr class="separator:ga60e1b62cdc62ebf3ba4acf209e923c22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga19737b5e5fdda066dba75bc47a6b0eb2"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga19737b5e5fdda066dba75bc47a6b0eb2">Cy_Crypto_Core_Aes_Ccm_Start</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, uint32_t ivSize, uint8_t const *iv, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:ga19737b5e5fdda066dba75bc47a6b0eb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to set IV for the AES CCM operation.  <a href="#ga19737b5e5fdda066dba75bc47a6b0eb2">More...</a><br /></td></tr>
<tr class="separator:ga19737b5e5fdda066dba75bc47a6b0eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae233721e07afb2e4dea7c4078973438e"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gae233721e07afb2e4dea7c4078973438e">Cy_Crypto_Core_Aes_Ccm_Update_Aad</a> (CRYPTO_Type *base, uint32_t aadSize, uint8_t const *aad, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:gae233721e07afb2e4dea7c4078973438e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CCM update AAD Multistage operation.  <a href="#gae233721e07afb2e4dea7c4078973438e">More...</a><br /></td></tr>
<tr class="separator:gae233721e07afb2e4dea7c4078973438e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab55befb97be4020cc0ec209816c94a49"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gab55befb97be4020cc0ec209816c94a49">Cy_Crypto_Core_Aes_Ccm_Update</a> (CRYPTO_Type *base, uint32_t srcSize, uint8_t *dst, uint8_t const *src, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:gab55befb97be4020cc0ec209816c94a49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CCM Update Multistage update operation.  <a href="#gab55befb97be4020cc0ec209816c94a49">More...</a><br /></td></tr>
<tr class="separator:gab55befb97be4020cc0ec209816c94a49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbcc8e264b4cd263185ae393f1b0bb77"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gabbcc8e264b4cd263185ae393f1b0bb77">Cy_Crypto_Core_Aes_Ccm_Finish</a> (CRYPTO_Type *base, uint8_t *tag, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:gabbcc8e264b4cd263185ae393f1b0bb77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CCM finish operation.  <a href="#gabbcc8e264b4cd263185ae393f1b0bb77">More...</a><br /></td></tr>
<tr class="separator:gabbcc8e264b4cd263185ae393f1b0bb77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a236ef766ff442ee6d33a20f929a0df"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga4a236ef766ff442ee6d33a20f929a0df">Cy_Crypto_Core_Aes_Ccm_Encrypt_Tag</a> (CRYPTO_Type *base, uint32_t ivSize, uint8_t const *iv, uint32_t aadSize, uint8_t const *aad, uint32_t srcSize, uint8_t *cipherTxt, uint8_t const *plainTxt, uint32_t tagSize, uint8_t *tag, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:ga4a236ef766ff442ee6d33a20f929a0df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CCM Encrypt operation.  <a href="#ga4a236ef766ff442ee6d33a20f929a0df">More...</a><br /></td></tr>
<tr class="separator:ga4a236ef766ff442ee6d33a20f929a0df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16446f2161c3478a11a58fb5cd9f0ea9"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga16446f2161c3478a11a58fb5cd9f0ea9">Cy_Crypto_Core_Aes_Ccm_Decrypt</a> (CRYPTO_Type *base, uint32_t ivSize, uint8_t const *iv, uint32_t aadSize, uint8_t const *aad, uint32_t srcSize, uint8_t *plainTxt, uint8_t const *cipherTxt, uint32_t tagSize, uint8_t const *tag, <a class="el" href="group__group__crypto__cli__data__structures.html#gadf7fb2e650ab952dc25a284423e04ce9">cy_en_crypto_aesccm_tag_verify_result_t</a> *isValid, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:ga16446f2161c3478a11a58fb5cd9f0ea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs an AES CCM Decrypt operation.  <a href="#ga16446f2161c3478a11a58fb5cd9f0ea9">More...</a><br /></td></tr>
<tr class="separator:ga16446f2161c3478a11a58fb5cd9f0ea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83e74f9b3696484b4b86ad88a4624092"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga83e74f9b3696484b4b86ad88a4624092">Cy_Crypto_Core_Aes_Ccm_Free</a> (CRYPTO_Type *base, <a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *aesCcmState)</td></tr>
<tr class="memdesc:ga83e74f9b3696484b4b86ad88a4624092"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears AES CCM operation context.  <a href="#ga83e74f9b3696484b4b86ad88a4624092">More...</a><br /></td></tr>
<tr class="separator:ga83e74f9b3696484b4b86ad88a4624092"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34af8cf89ed2ebfb51941dce5c7c43c4"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga34af8cf89ed2ebfb51941dce5c7c43c4">Cy_Crypto_Core_Des</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, uint8_t const *key, uint8_t *dst, uint8_t const *src)</td></tr>
<tr class="memdesc:ga34af8cf89ed2ebfb51941dce5c7c43c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the DES operation on a single block.  <a href="#ga34af8cf89ed2ebfb51941dce5c7c43c4">More...</a><br /></td></tr>
<tr class="separator:ga34af8cf89ed2ebfb51941dce5c7c43c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46e4f33120f1f9b5f1858da65917f267"><td class="memItemLeft" align="right" valign="top">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga46e4f33120f1f9b5f1858da65917f267">Cy_Crypto_Core_Tdes</a> (CRYPTO_Type *base, <a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a> dirMode, uint8_t const *key, uint8_t *dst, uint8_t const *src)</td></tr>
<tr class="memdesc:ga46e4f33120f1f9b5f1858da65917f267"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the TDES operation on a single block.  <a href="#ga46e4f33120f1f9b5f1858da65917f267">More...</a><br /></td></tr>
<tr class="separator:ga46e4f33120f1f9b5f1858da65917f267"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaea56d7bae9d75b93886094f248e26006"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaea56d7bae9d75b93886094f248e26006">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Init </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a>&#160;</td>
          <td class="paramname"><em>keyLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes AES mode of operation and prepares an inverse key. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters key must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">key</td><td>The pointer to the encryption/decryption key.</td></tr>
    <tr><td class="paramname">keyLength</td><td><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a></td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    uint8_t aesKey[<a class="code" href="group__group__crypto__cli__srv__macros.html#ga0170aa17289178203dcc2114a31c400e">CY_CRYPTO_AES_128_KEY_SIZE</a>] = {</div><div class="line">        0x2Bu, 0x7Eu, 0x15u, 0x16u, 0x28u, 0xAEu, 0xD2u, 0xA6u,</div><div class="line">        0xABu, 0xF7u, 0x15u, 0x88u, 0x09u, 0xCFu, 0x4Fu, 0x3Cu</div><div class="line">    };</div><div class="line"></div><div class="line">    uint8_t aesEcbPlainText[<a class="code" href="group__group__crypto__cli__srv__macros.html#gab966285a569cc381f21ca7ebb9918128">CY_CRYPTO_AES_BLOCK_SIZE</a>]  = {</div><div class="line">        0x6Bu, 0xC0u, 0xBCu, 0xE1u, 0x2Au, 0x45u, 0x99u, 0x91u,</div><div class="line">        0xE1u, 0x34u, 0x74u, 0x1Au, 0x7Fu, 0x9Eu, 0x19u, 0x25u</div><div class="line">    };</div><div class="line"></div><div class="line">    uint8_t aesEcbCipherText[<a class="code" href="group__group__crypto__cli__srv__macros.html#gab966285a569cc381f21ca7ebb9918128">CY_CRYPTO_AES_BLOCK_SIZE</a>] = {0};</div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> aesState;</div><div class="line">        <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line">    <span class="comment">/* Initialize Crypto AES functionality  */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#gaea56d7bae9d75b93886094f248e26006">Cy_Crypto_Core_Aes_Init</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             aesKey,                <span class="comment">/* Pointer to key */</span></div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, <span class="comment">/* Key size */</span></div><div class="line">                             &amp;aesState); <span class="comment">/* pointer to AES state structure */</span></div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Encrypt one block (16 Bytes) by AES128 */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga2b6e50fe58b6e41aa47b8a588808dc76">Cy_Crypto_Core_Aes_Ecb</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>,</div><div class="line">                             aesEcbCipherText, <span class="comment">/* destination block */</span></div><div class="line">                             aesEcbPlainText,  <span class="comment">/* source block */</span></div><div class="line">                             &amp;aesState);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Clear AES operation context */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga6175ad8a73bb13bb2baea32c5e26239a">Cy_Crypto_Core_Aes_Free</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             &amp;aesState);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gaf6931a6db295f623788108b994f88cab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf6931a6db295f623788108b994f88cab">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_InitContext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_InitContext </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a>&#160;</td>
          <td class="paramname"><em>keyLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__buffers__t.html">cy_stc_crypto_aes_buffers_t</a> *&#160;</td>
          <td class="paramname"><em>aesBuffers</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes AES mode of operation and prepares an inverse key within a user specified buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">key</td><td>The pointer to the encryption/decryption key.</td></tr>
    <tr><td class="paramname">keyLength</td><td><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a></td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
    <tr><td class="paramname">aesBuffers</td><td>The pointer to the AES buffer provided by the user. The user must not modify anything in this buffer during operation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga6175ad8a73bb13bb2baea32c5e26239a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6175ad8a73bb13bb2baea32c5e26239a">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Free </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clears AES operation context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    uint8_t aesKey[<a class="code" href="group__group__crypto__cli__srv__macros.html#ga0170aa17289178203dcc2114a31c400e">CY_CRYPTO_AES_128_KEY_SIZE</a>] = {</div><div class="line">        0x2Bu, 0x7Eu, 0x15u, 0x16u, 0x28u, 0xAEu, 0xD2u, 0xA6u,</div><div class="line">        0xABu, 0xF7u, 0x15u, 0x88u, 0x09u, 0xCFu, 0x4Fu, 0x3Cu</div><div class="line">    };</div><div class="line"></div><div class="line">    uint8_t aesEcbPlainText[<a class="code" href="group__group__crypto__cli__srv__macros.html#gab966285a569cc381f21ca7ebb9918128">CY_CRYPTO_AES_BLOCK_SIZE</a>]  = {</div><div class="line">        0x6Bu, 0xC0u, 0xBCu, 0xE1u, 0x2Au, 0x45u, 0x99u, 0x91u,</div><div class="line">        0xE1u, 0x34u, 0x74u, 0x1Au, 0x7Fu, 0x9Eu, 0x19u, 0x25u</div><div class="line">    };</div><div class="line"></div><div class="line">    uint8_t aesEcbCipherText[<a class="code" href="group__group__crypto__cli__srv__macros.html#gab966285a569cc381f21ca7ebb9918128">CY_CRYPTO_AES_BLOCK_SIZE</a>] = {0};</div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> aesState;</div><div class="line">        <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line">    <span class="comment">/* Initialize Crypto AES functionality  */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#gaea56d7bae9d75b93886094f248e26006">Cy_Crypto_Core_Aes_Init</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             aesKey,                <span class="comment">/* Pointer to key */</span></div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, <span class="comment">/* Key size */</span></div><div class="line">                             &amp;aesState); <span class="comment">/* pointer to AES state structure */</span></div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Encrypt one block (16 Bytes) by AES128 */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga2b6e50fe58b6e41aa47b8a588808dc76">Cy_Crypto_Core_Aes_Ecb</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>,</div><div class="line">                             aesEcbCipherText, <span class="comment">/* destination block */</span></div><div class="line">                             aesEcbPlainText,  <span class="comment">/* source block */</span></div><div class="line">                             &amp;aesState);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Clear AES operation context */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga6175ad8a73bb13bb2baea32c5e26239a">Cy_Crypto_Core_Aes_Free</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             &amp;aesState);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga2b6e50fe58b6e41aa47b8a588808dc76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b6e50fe58b6e41aa47b8a588808dc76">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ecb()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ecb </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the AES operation on a single block. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters src &amp; dst must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>).</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to the destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to the source block.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    uint8_t aesKey[<a class="code" href="group__group__crypto__cli__srv__macros.html#ga0170aa17289178203dcc2114a31c400e">CY_CRYPTO_AES_128_KEY_SIZE</a>] = {</div><div class="line">        0x2Bu, 0x7Eu, 0x15u, 0x16u, 0x28u, 0xAEu, 0xD2u, 0xA6u,</div><div class="line">        0xABu, 0xF7u, 0x15u, 0x88u, 0x09u, 0xCFu, 0x4Fu, 0x3Cu</div><div class="line">    };</div><div class="line"></div><div class="line">    uint8_t aesEcbPlainText[<a class="code" href="group__group__crypto__cli__srv__macros.html#gab966285a569cc381f21ca7ebb9918128">CY_CRYPTO_AES_BLOCK_SIZE</a>]  = {</div><div class="line">        0x6Bu, 0xC0u, 0xBCu, 0xE1u, 0x2Au, 0x45u, 0x99u, 0x91u,</div><div class="line">        0xE1u, 0x34u, 0x74u, 0x1Au, 0x7Fu, 0x9Eu, 0x19u, 0x25u</div><div class="line">    };</div><div class="line"></div><div class="line">    uint8_t aesEcbCipherText[<a class="code" href="group__group__crypto__cli__srv__macros.html#gab966285a569cc381f21ca7ebb9918128">CY_CRYPTO_AES_BLOCK_SIZE</a>] = {0};</div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> aesState;</div><div class="line">        <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line">    <span class="comment">/* Initialize Crypto AES functionality  */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#gaea56d7bae9d75b93886094f248e26006">Cy_Crypto_Core_Aes_Init</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             aesKey,                <span class="comment">/* Pointer to key */</span></div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, <span class="comment">/* Key size */</span></div><div class="line">                             &amp;aesState); <span class="comment">/* pointer to AES state structure */</span></div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Encrypt one block (16 Bytes) by AES128 */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga2b6e50fe58b6e41aa47b8a588808dc76">Cy_Crypto_Core_Aes_Ecb</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>,</div><div class="line">                             aesEcbCipherText, <span class="comment">/* destination block */</span></div><div class="line">                             aesEcbPlainText,  <span class="comment">/* source block */</span></div><div class="line">                             &amp;aesState);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Clear AES operation context */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga6175ad8a73bb13bb2baea32c5e26239a">Cy_Crypto_Core_Aes_Free</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             &amp;aesState);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gac50cc036fd04cd2dcfbe6a185d89e149"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac50cc036fd04cd2dcfbe6a185d89e149">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ecb_Setup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ecb_Setup </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES ECB init operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>).</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga72d645285e442600729f4d47a4d3469e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga72d645285e442600729f4d47a4d3469e">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ecb_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ecb_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES ECB Multistage update operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters src &amp; dst must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to a destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to a source block.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga69bcb1415174bc08e94df486c3ddd774"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga69bcb1415174bc08e94df486c3ddd774">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ecb_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ecb_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES ECB finish operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga3410c8e8bc02e192a2d9a371a00d2c4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3410c8e8bc02e192a2d9a371a00d2c4a">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cbc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cbc </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>ivPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the AES-CBC operation defined in the dirMode parameter on a plain text defined in the src parameter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>)</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source plain text.</td></tr>
    <tr><td class="paramname">ivPtr</td><td>The pointer to the initial vector.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to the destination cipher text.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to the source plain text.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga0a8b78ef3db9b502c51437384343c9bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0a8b78ef3db9b502c51437384343c9bb">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cbc_Setup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cbc_Setup </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CBC setup operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>).</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gaaabc166f616c6885912ff0dbcaa8ca16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaabc166f616c6885912ff0dbcaa8ca16">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cbc_Set_IV()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cbc_Set_IV </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function to set AES CBC IV. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters iv must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the IV.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga6d520e136268252df2ec00d6756cec51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6d520e136268252df2ec00d6756cec51">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cbc_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cbc_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CBC Multistage update operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters src &amp; dst must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to a destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to a source block.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gaba43096fd3fc0d6b401a4fbf81c6ccc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba43096fd3fc0d6b401a4fbf81c6ccc4">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cbc_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cbc_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CBC finish operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gad9cf667d5368db3c77b2cbaacb4d2b07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad9cf667d5368db3c77b2cbaacb4d2b07">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_CbcMac_Setup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_CbcMac_Setup </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CBC MAC setup operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga042fecb689ca5c6d845a3d43d937d6e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga042fecb689ca5c6d845a3d43d937d6e6">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_CbcMac_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_CbcMac_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CBC MAC Multistage update operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters src must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to a source block.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga3012ea74219b46f00638b2062dea071f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3012ea74219b46f00638b2062dea071f">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_CbcMac_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_CbcMac_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>mac</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CBC finish operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters mac must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">mac</td><td>The pointer to the cbc-mac.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga050212232c6625a29c2e91efac199841"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga050212232c6625a29c2e91efac199841">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cfb()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cfb </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>ivPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the AES-CFB operation defined in the dirMode parameter on a plain text defined in the SRC parameter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>)</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source plain text.</td></tr>
    <tr><td class="paramname">ivPtr</td><td>The pointer to the initial vector.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to the destination cipher text.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to the source plain text.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga8ce9a531fdf5bdfbbb2577ea223317b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ce9a531fdf5bdfbbb2577ea223317b3">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cfb_Setup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cfb_Setup </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CFB setup operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>).</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga55cbf36559313816d6aaceb6440ca906"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga55cbf36559313816d6aaceb6440ca906">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cfb_Set_IV()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cfb_Set_IV </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets IV for AES CFB mode. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters iv must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to iv.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gaad3738de4a9dc02b633ee50e4697b821"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaad3738de4a9dc02b633ee50e4697b821">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cfb_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cfb_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CFB Multistage update operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters src &amp; dst must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to a destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to a source block.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga521f4e38e7e7077b3e388292ef611072"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga521f4e38e7e7077b3e388292ef611072">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Cfb_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Cfb_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CFB finish operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gac62e5c170a6f7d18d67d2c932449d87f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac62e5c170a6f7d18d67d2c932449d87f">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ctr()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ctr </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>srcOffset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>ivPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>streamBlock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the AES-CTR operation on a plain text defined in the src parameter. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters iv must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source plain text.</td></tr>
    <tr><td class="paramname">srcOffset</td><td>The size of an offset within the current block stream for resuming within the current cipher stream.</td></tr>
    <tr><td class="paramname">ivPtr</td><td>The 128-bit initial vector that contains a 64-bit nonce and 64-bit counter.</td></tr>
    <tr><td class="paramname">streamBlock</td><td>The saved stream-block for resuming. Is over-written by the function.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to the destination cipher text.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to the source plain text. Must be 4-Byte aligned.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga23315dc32b20d4ee78b4589e0835f14f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga23315dc32b20d4ee78b4589e0835f14f">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ctr_Setup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ctr_Setup </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CTR Multistage update operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga81ffb369eed08c90f92a75db5114d217"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81ffb369eed08c90f92a75db5114d217">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ctr_Set_IV()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ctr_Set_IV </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets IV for the AES CTR operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to iv.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga9dfcf96392695a5a643da418f0024654"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9dfcf96392695a5a643da418f0024654">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ctr_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ctr_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CTR Multistage update operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters src &amp; dst must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to a destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to a source block.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga8b579a21afccdd8eff2ac64a87738f2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8b579a21afccdd8eff2ac64a87738f2a">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ctr_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ctr_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__state__t.html">cy_stc_crypto_aes_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CTR Finish operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesState</td><td>The pointer to the AES state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga5397f500cd39371585d13a575388df7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5397f500cd39371585d13a575388df7b">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Init </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMBuffers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to initialize AES GCM operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesGCMBuffers</td><td>The pointer to the AES GCM buffer provided by the user. The user must not modify anything in this structure.</td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES GCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gaa9482beb06dd2ff7eca6ab0391fdb50b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa9482beb06dd2ff7eca6ab0391fdb50b">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_SetKey()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_SetKey </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>aesKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a>&#160;</td>
          <td class="paramname"><em>keyLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to set AES GCM Key. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters aeskey must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesKey</td><td>The pointer to the AES key.</td></tr>
    <tr><td class="paramname">keyLength</td><td><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a></td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES GCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga9f1b8325307421a3afd5883d964668ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f1b8325307421a3afd5883d964668ce">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Start </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ivSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to start AES GCM operation. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters iv must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">mode</td><td><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a></td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the Initialization vector.</td></tr>
    <tr><td class="paramname">ivSize</td><td>The length of the iv.</td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES GCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga511634896e2b5134b60352fc4b0bea01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga511634896e2b5134b60352fc4b0bea01">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_AAD_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_AAD_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>aad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to update the Additional Authentication Data. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters aad must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aad</td><td>The pointer to the Additional Authentication Data.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The length of the Additional Authentication Data</td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES GCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga49798517e7b3eb54cbfa6772fcac6f4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49798517e7b3eb54cbfa6772fcac6f4d">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>inputSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to update the data For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters input &amp; output must align and end in 32 byte boundary. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">input</td><td>The pointer to the input data to be encrypted/decrypted.</td></tr>
    <tr><td class="paramname">inputSize</td><td>The length of the input data.</td></tr>
    <tr><td class="paramname">output</td><td>The pointer to the encrypted/decrypted output data.</td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES GCm state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga1740199477a8fd8d46c3cc02ce172793"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1740199477a8fd8d46c3cc02ce172793">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>p_tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>tagSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to finish the AES GCM operation and to calculate the tag. </p>
<p>For CAT1C &amp; CAT1D(CM55) devices when D-Cache is enabled parameters p_tag must align and end in 32 byte boundary.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">p_tag</td><td>The pointer to the buffer for storing tag.</td></tr>
    <tr><td class="paramname">tagSize</td><td>The length of the p_tag.</td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES aesGCMctx structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga448121780e7ad4d589ef23989b7843dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga448121780e7ad4d589ef23989b7843dd">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Free </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesGCMctx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The function to finish the encryption process and calculate tag. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesGCMctx</td><td>The pointer to the AES aesGCMctx structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__state__t.html">cy_stc_crypto_aes_gcm_state_t</a> aesGCMctx = {0};</div><div class="line">    <a class="code" href="structcy__stc__crypto__aes__gcm__buffers__t.html">cy_stc_crypto_aes_gcm_buffers_t</a> aesGCMBuffers = {0};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> status = <a class="code" href="group__group__crypto__enums.html#gga3a65158da3dc5cb6aa016ae599542aada254861d7a75c5e292718d39dbbe84319">CY_CRYPTO_BAD_PARAMS</a>;</div><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    </div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {0};</div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Init(CRYPTO_HW, &amp;aesGCMBuffers, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_SetKey(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line">    </div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Start(CRYPTO_HW, <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>, iv, <span class="keyword">sizeof</span>(iv), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_AAD_Update(CRYPTO_HW, aad, <span class="keyword">sizeof</span>(aad), &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status = Cy_Crypto_Core_V2_Aes_GCM_Update(CRYPTO_HW, plain_txt, <span class="keyword">sizeof</span>(plain_txt), encrypted_data, &amp;aesGCMctx);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    status =  Cy_Crypto_Core_V2_Aes_GCM_Finish(CRYPTO_HW, tag, <span class="keyword">sizeof</span>(tag), &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">     status =  Cy_Crypto_Core_V2_Aes_GCM_Free(CRYPTO_HW, &amp;aesGCMctx);</div><div class="line">    </div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gac4359679bbb49284433841aa0f9f0f80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac4359679bbb49284433841aa0f9f0f80">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Encrypt_Tag()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Encrypt_Tag </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>aesKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a>&#160;</td>
          <td class="paramname"><em>keyLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ivSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>aad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>inputSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>tagSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the AES GCM encryption operation on the input data, iv &amp; aad data, generates the encrypted data and TAG. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesKey</td><td>The pointer to the AES key.</td></tr>
    <tr><td class="paramname">keyLength</td><td><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a></td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the Initialization vector.</td></tr>
    <tr><td class="paramname">ivSize</td><td>The length of the iv.</td></tr>
    <tr><td class="paramname">aad</td><td>The pointer to the Additional Authentication Data.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The length of the additional Authentication Data</td></tr>
    <tr><td class="paramname">input</td><td>The pointer to the input data to be encrypted/decrypted.</td></tr>
    <tr><td class="paramname">inputSize</td><td>The length of the input data.</td></tr>
    <tr><td class="paramname">output</td><td>The pointer to the encrypted/decrypted output data.</td></tr>
    <tr><td class="paramname">tag</td><td>The pointer to the tag.</td></tr>
    <tr><td class="paramname">tagSize</td><td>The length of the p_tag.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line"></div><div class="line">    uint8_t aes_key[] = {0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c, 0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08, };</div><div class="line">    uint8_t plain_txt[] = {0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5, 0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a, 0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda, 0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72, 0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53, 0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25, 0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57, 0xba, 0x63, 0x7b, 0x39};</div><div class="line">    uint8_t iv[12] = {0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad, 0xde, 0xca, 0xf8, 0x88};</div><div class="line">    uint8_t aad[] = {0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef, 0xab, 0xad, 0xda, 0xd2};</div><div class="line">    uint8_t encrypted_data[<span class="keyword">sizeof</span>(plain_txt)] = {0};</div><div class="line">    uint8_t tag[16] = {};</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Encrypt AES-128 GCM */</span></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#gac4359679bbb49284433841aa0f9f0f80">Cy_Crypto_Core_Aes_GCM_Encrypt_Tag</a>(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa1d7e508252e541450df0eb37f4c0bf6e">CY_CRYPTO_KEY_AES_128</a>, iv, <span class="keyword">sizeof</span>(iv), aad,  <span class="keyword">sizeof</span>(aad), plain_txt, <span class="keyword">sizeof</span>(plain_txt),  encrypted_data, tag, <span class="keyword">sizeof</span>(tag));</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga77277c9972f93fc577c6501ce34fb264"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga77277c9972f93fc577c6501ce34fb264">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_GCM_Decrypt_Tag()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_GCM_Decrypt_Tag </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>aesKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a>&#160;</td>
          <td class="paramname"><em>keyLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ivSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>aad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>inputSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>tagSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>output</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cy_en_crypto_aesgcm_tag_verify_result_t *&#160;</td>
          <td class="paramname"><em>isVerified</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the AES GCM decryption operation on the input data and verifies the TAG. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesKey</td><td>The pointer to the AES key.</td></tr>
    <tr><td class="paramname">keyLength</td><td><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a></td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the Initialization vector.</td></tr>
    <tr><td class="paramname">ivSize</td><td>The length of the iv.</td></tr>
    <tr><td class="paramname">aad</td><td>The pointer to the Additional Authentication Data.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The length of the additional Authentication Data</td></tr>
    <tr><td class="paramname">input</td><td>The pointer to the input data to be encrypted/decrypted.</td></tr>
    <tr><td class="paramname">inputSize</td><td>The length of the input data.</td></tr>
    <tr><td class="paramname">tag</td><td>The pointer to the tag.</td></tr>
    <tr><td class="paramname">tagSize</td><td>The length of the p_tag.</td></tr>
    <tr><td class="paramname">output</td><td>The pointer to the encrypted/decrypted output data.</td></tr>
    <tr><td class="paramname">isVerified</td><td>The status of the AES GCM verification.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    </div><div class="line">    uint8_t aes_key[] =     { 0x7f, 0x71, 0x68, 0xa4, 0x06, 0xe7, 0xc1, 0xef, 0x0f, 0xd4, 0x7a, 0xc9, 0x22, 0xc5, 0xec, 0x5f, 0x65, 0x97, 0x65, 0xfb, 0x6a, 0xaa, 0x04, 0x8f, 0x70, 0x56, 0xf6, 0xc6, 0xb5, 0xd8, 0x51, 0x3d };</div><div class="line">    uint8_t cipher_txt[] = {0x8f, 0xad, 0xa0, 0xb8, 0xe7, 0x77, 0xa8, 0x29, 0xca, 0x96, 0x80, 0xd3, 0xbf, 0x4f, 0x35, 0x74, };</div><div class="line">    uint8_t iv[12] = {0xb8, 0xb5, 0xe4, 0x07, 0xad, 0xc0, 0xe2, 0x93, 0xe3, 0xe7, 0xe9, 0x91, };</div><div class="line">    uint8_t aad[] = {0xff, 0x76, 0x28, 0xf6, 0x42, 0x7f, 0xbc, 0xef, 0x1f, 0x3b, 0x82, 0xb3, 0x74, 0x04, 0xe1, 0x16, };</div><div class="line">    uint8_t decrypted_txt[16] = {0};</div><div class="line">    uint8_t tag[15] = {0xda, 0xca, 0x35, 0x42, 0x77, 0xf6, 0x33, 0x5f, 0xc8, 0xbe, 0xc9, 0x08, 0x86, 0xda, 0x70};</div><div class="line">    cy_en_crypto_aesgcm_tag_verify_result_t ver_result;</div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line"></div><div class="line">    <span class="comment">/* Decrypt with AES-256 GCM and verify the tag */</span></div><div class="line">    cryptoStatus =  Cy_Crypto_Core_V2_Aes_GCM_Decrypt_Tag(CRYPTO_HW, aes_key, <a class="code" href="group__group__crypto__enums.html#gga5402841d4798c0a82d41d8433c92b62fa3b323f55c81fca9b412fea5ed28bcb30">CY_CRYPTO_KEY_AES_256</a>, iv, <span class="keyword">sizeof</span>(iv), aad,  <span class="keyword">sizeof</span>(aad), cipher_txt, <span class="keyword">sizeof</span>(cipher_txt), tag, <span class="keyword">sizeof</span>(tag), decrypted_txt, &amp;ver_result);</div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors and check ver_result is CY_CRYPTO_TAG_VALID... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="gaf00a0512092af6d1093f3245a5108944"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf00a0512092af6d1093f3245a5108944">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Init </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__buffers__t.html">cy_stc_crypto_aes_ccm_buffers_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CCM Init operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesCcmBuffer</td><td>The buffers should be a SAHB mapped addresses. The pointer to the memory buffers storage.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga62bb8a9f1ae419d32524c5a2cc4ccd5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62bb8a9f1ae419d32524c5a2cc4ccd5a">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_SetKey()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_SetKey </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a>&#160;</td>
          <td class="paramname"><em>keyLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets AES CCM Key for the operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">key</td><td>The pointer to the CCM key.</td></tr>
    <tr><td class="paramname">keyLength</td><td><a class="el" href="group__group__crypto__enums.html#ga5402841d4798c0a82d41d8433c92b62f">cy_en_crypto_aes_key_length_t</a></td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga60e1b62cdc62ebf3ba4acf209e923c22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60e1b62cdc62ebf3ba4acf209e923c22">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Set_Length()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Set_Length </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>textSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>tagLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the length for Additional authentication data, plain text and Tag for AES CCM operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The Size of the Additional Authentication Data.</td></tr>
    <tr><td class="paramname">textSize</td><td>The Size of the Text.</td></tr>
    <tr><td class="paramname">tagLength</td><td>The Size of the Tag.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga19737b5e5fdda066dba75bc47a6b0eb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga19737b5e5fdda066dba75bc47a6b0eb2">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Start </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ivSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function to set IV for the AES CCM operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>)</td></tr>
    <tr><td class="paramname">ivSize</td><td>The size of the IV.</td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the IV.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gae233721e07afb2e4dea7c4078973438e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae233721e07afb2e4dea7c4078973438e">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Update_Aad()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Update_Aad </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>aad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CCM update AAD Multistage operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The size of the AAD.</td></tr>
    <tr><td class="paramname">aad</td><td>The pointer to a AAD.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gab55befb97be4020cc0ec209816c94a49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab55befb97be4020cc0ec209816c94a49">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Update()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Update </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CCM Update Multistage update operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to a destination block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to a source block.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="gabbcc8e264b4cd263185ae393f1b0bb77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabbcc8e264b4cd263185ae393f1b0bb77">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Finish </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CCM finish operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">tag</td><td>The pointer to the CCM Tag.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga4a236ef766ff442ee6d33a20f929a0df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a236ef766ff442ee6d33a20f929a0df">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Encrypt_Tag()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Encrypt_Tag </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ivSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>aad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>cipherTxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>plainTxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>tagSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CCM Encrypt operation. </p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaf00a0512092af6d1093f3245a5108944" title="Performs an AES CCM Init operation. ">Cy_Crypto_Core_Aes_Ccm_Init()</a> and <a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga62bb8a9f1ae419d32524c5a2cc4ccd5a" title="Sets AES CCM Key for the operation. ">Cy_Crypto_Core_Aes_Ccm_SetKey()</a> should be called before calling this function</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">ivSize</td><td>The size of the IV.</td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the IV.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The size of the AAD.</td></tr>
    <tr><td class="paramname">aad</td><td>The pointer to a AAD.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">cipherTxt</td><td>The pointer to a cipher text block.</td></tr>
    <tr><td class="paramname">plainTxt</td><td>The pointer to a plain text block.</td></tr>
    <tr><td class="paramname">tagSize</td><td>The size of the Tag.</td></tr>
    <tr><td class="paramname">tag</td><td>The pointer to the tags.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga16446f2161c3478a11a58fb5cd9f0ea9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga16446f2161c3478a11a58fb5cd9f0ea9">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Decrypt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Decrypt </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>ivSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>aadSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>aad</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>plainTxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>cipherTxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>tagSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__cli__data__structures.html#gadf7fb2e650ab952dc25a284423e04ce9">cy_en_crypto_aesccm_tag_verify_result_t</a> *&#160;</td>
          <td class="paramname"><em>isValid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs an AES CCM Decrypt operation. </p>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group__group__crypto__lld__symmetric__functions.html#gaf00a0512092af6d1093f3245a5108944" title="Performs an AES CCM Init operation. ">Cy_Crypto_Core_Aes_Ccm_Init()</a> and <a class="el" href="group__group__crypto__lld__symmetric__functions.html#ga62bb8a9f1ae419d32524c5a2cc4ccd5a" title="Sets AES CCM Key for the operation. ">Cy_Crypto_Core_Aes_Ccm_SetKey()</a> should be called before calling this function</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">ivSize</td><td>The size of the IV.</td></tr>
    <tr><td class="paramname">iv</td><td>The pointer to the IV.</td></tr>
    <tr><td class="paramname">aadSize</td><td>The size of the AAD.</td></tr>
    <tr><td class="paramname">aad</td><td>The pointer to a AAD.</td></tr>
    <tr><td class="paramname">srcSize</td><td>The size of the source block.</td></tr>
    <tr><td class="paramname">plainTxt</td><td>The pointer to a plain text block.</td></tr>
    <tr><td class="paramname">cipherTxt</td><td>The pointer to a cipher text block.</td></tr>
    <tr><td class="paramname">tagSize</td><td>The size of the Tag.</td></tr>
    <tr><td class="paramname">tag</td><td>The pointer to the tags.</td></tr>
    <tr><td class="paramname">isValid</td><td>The pointer Store the authentication status.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga83e74f9b3696484b4b86ad88a4624092"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83e74f9b3696484b4b86ad88a4624092">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Aes_Ccm_Free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Aes_Ccm_Free </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__crypto__aes__ccm__state__t.html">cy_stc_crypto_aes_ccm_state_t</a> *&#160;</td>
          <td class="paramname"><em>aesCcmState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clears AES CCM operation context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">aesCcmState</td><td>The pointer to the AES CCM state structure allocated by the user. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> </dd></dl>

</div>
</div>
<a id="ga34af8cf89ed2ebfb51941dce5c7c43c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga34af8cf89ed2ebfb51941dce5c7c43c4">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Des()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Des </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the DES operation on a single block. </p>
<p>All addresses must be 4-byte aligned. Ciphertext (dst) may overlap with plaintext (src). This function is independent from the previous Crypto state.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>)</td></tr>
    <tr><td class="paramname">key</td><td>The pointer to the encryption/decryption key.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to the destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to the source block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Note: all keys are placed into the one keys array. */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define STRING_LENGTH  8</span></div><div class="line">    uint8_t msgString[STRING_LENGTH] = <span class="stringliteral">&quot;Crypto!&quot;</span>;</div><div class="line">    uint8_t encString[STRING_LENGTH];</div><div class="line"></div><div class="line"><span class="preprocessor">    #define KEY1 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77</span></div><div class="line"></div><div class="line">    uint8_t desKey[] = { KEY1 };</div><div class="line"></div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga34af8cf89ed2ebfb51941dce5c7c43c4">Cy_Crypto_Core_Des</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>,</div><div class="line">                             desKey,     <span class="comment">/* Pointer to key */</span></div><div class="line">                             encString,  <span class="comment">/* Destination string */</span></div><div class="line">                             msgString); <span class="comment">/* Source String */</span></div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga46e4f33120f1f9b5f1858da65917f267"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46e4f33120f1f9b5f1858da65917f267">&#9670;&nbsp;</a></span>Cy_Crypto_Core_Tdes()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">__STATIC_INLINE <a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> Cy_Crypto_Core_Tdes </td>
          <td>(</td>
          <td class="paramtype">CRYPTO_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>&#160;</td>
          <td class="paramname"><em>dirMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs the TDES operation on a single block. </p>
<p>All addresses must be 4-byte aligned. Ciphertext (dst) may overlap with plaintext (src). This function is independent from the previous Crypto state.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The pointer to the CRYPTO instance.</td></tr>
    <tr><td class="paramname">dirMode</td><td>Can be <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a> or <a class="el" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09cac7ccc0aa22f73054744e87593deb77fd">CY_CRYPTO_DECRYPT</a> (<a class="el" href="group__group__crypto__enums.html#gae040fb530d4d110976bedfcdb7c8f09c">cy_en_crypto_dir_mode_t</a>)</td></tr>
    <tr><td class="paramname">key</td><td>The pointer to the encryption/decryption keys.</td></tr>
    <tr><td class="paramname">dst</td><td>The pointer to the destination cipher block.</td></tr>
    <tr><td class="paramname">src</td><td>The pointer to the source data block.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a></dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Note: all keys are placed into the one keys array. */</span></div><div class="line"></div><div class="line"><span class="preprocessor">    #define STRING_LENGTH  8</span></div><div class="line">    uint8_t msgString[STRING_LENGTH] = <span class="stringliteral">&quot;Crypto!&quot;</span>;</div><div class="line">    uint8_t encString[STRING_LENGTH];</div><div class="line"></div><div class="line"><span class="preprocessor">    #define KEY1 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77</span></div><div class="line"><span class="preprocessor">    #define KEY2 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF</span></div><div class="line"><span class="preprocessor">    #define KEY3 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08</span></div><div class="line"></div><div class="line">    uint8_t tdesKey[] = { KEY1, KEY2, KEY3 };</div><div class="line"></div><div class="line">    <a class="code" href="group__group__crypto__enums.html#ga3a65158da3dc5cb6aa016ae599542aad">cy_en_crypto_status_t</a> cryptoStatus;</div><div class="line"></div><div class="line">    cryptoStatus = <a class="code" href="group__group__crypto__lld__symmetric__functions.html#ga46e4f33120f1f9b5f1858da65917f267">Cy_Crypto_Core_Tdes</a>(</div><div class="line">                             CRYPTO_HW,</div><div class="line">                             <a class="code" href="group__group__crypto__enums.html#ggae040fb530d4d110976bedfcdb7c8f09ca4b95ef1e3f73771b0c6a376c6d43e16d">CY_CRYPTO_ENCRYPT</a>,</div><div class="line">                             tdesKey,    <span class="comment">/* Pointer to keys */</span></div><div class="line">                             encString,  <span class="comment">/* Destination string */</span></div><div class="line">                             msgString); <span class="comment">/* Source String */</span></div><div class="line"></div><div class="line">    <span class="comment">/* ... check for errors... */</span></div><div class="line"></div></div><!-- fragment --># </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
